package com.sumainfor.pc.market.dao;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author PuaChen
 * @Create 2019-05-20 10:56
 * 总经办工作台
 */
public interface GmfWorkBenchMapper {

    ///////////////////////////////////////////////////////////////////////////
    // 服务中心统计
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 查询在跟业主
     *
     * @param miIds
     * @return
     */
    int selectCenterForOwner(@Param("miIds") List<Integer> miIds);

    /**
     * 查询空值率
     *
     * @param miIds
     * @param where
     * @return
     */
    int selectCenterForEmpty(@Param("miIds") List<Integer> miIds, @Param("where") String where);

    /**
     * 查询带装修房源
     *
     * @param miIds
     * @return
     */
    int selectCenterForWaitPlanCount(@Param("miIds") List<Integer> miIds, @Param("state") Integer state);


    ///////////////////////////////////////////////////////////////////////////
    // 分公司统计
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 查询新签与续签出租数量
     *
     * @param miIds
     * @param startTime
     * @param endTime
     * @param state     为空就是新签，不为空 就是续签查询
     * @return
     */
    int selectComForNewPact(@Param("miIds") List<Integer> miIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("state") Integer state);

    /**
     * 新增咨询租客
     *
     * @param miIds
     * @param startTime
     * @param endTime
     * @return
     */
    int selectComForTenant(@Param("miIds") List<Integer> miIds, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 带看工单
     *
     * @param userIds
     * @param startTime
     * @param endTime
     * @return
     */
    int selectComForWord(@Param("userIds") List<Integer> userIds, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 低于活动价签约
     *
     * @param miIds
     * @param startTime
     * @param endTime
     * @return
     */
    int selectComForMoneyMinPact(@Param("miIds") List<Integer> miIds, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 定价异常审核
     *
     * @param miIds
     * @param startTime
     * @param endTime
     * @return
     */
    int selectComForMoneyAudit(@Param("miIds") List<Integer> miIds, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 新签收房
     *
     * @param miIds
     * @param startTime
     * @param endTime
     * @return
     */
    int selectComForNewHousing(@Param("miIds") List<Integer> miIds, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 开工房源
     *
     * @param miIds
     * @param startTime
     * @param endTime
     * @param state     房源状态
     * @return
     */
    int selectComForPlanIngHousing(@Param("miIds") List<Integer> miIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("state") Integer state);

    /**
     * 查询空置房源
     *
     * @param miIds
     * @param startTime
     * @param endTime
     * @param state     true 查询30天内
     * @return
     */
    int selectComForEmpty(@Param("miIds") List<Integer> miIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("state") boolean state);


    ///////////////////////////////////////////////////////////////////////////
    // 年度收房统计
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 年度收房统计
     * @param year
     * @return
     */
    List<Map<String,Object>> selectInHousing(String year);

    ///////////////////////////////////////////////////////////////////////////
    // 年度租房统计
    ///////////////////////////////////////////////////////////////////////////
    /**
     * 年度租房统计
     * @param year
     * @return
     */
    List<Map<String,Object>> selectOutHousing(String year);
}
